home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / CPP / METAKIT.ZIP / README.TXT < prev    next >
Encoding:
Text File  |  1996-12-09  |  15.0 KB  |  315 lines

  1.  
  2. The MetaKit Library                 Version 1.5                 December, 1996
  3. ==============================================================================
  4.  
  5.  
  6. DESCRIPTION
  7.  
  8.     The MetaKit Library is a software development library for data storage
  9.     and easy manipulation of structured objects and collections in C++. 
  10.     If you need bulky, powerful database functions look elsewhere, but if you
  11.     need a small self-contained library to store structured data, read on.
  12.  
  13.     This software is distributed as shareware. Full source code is available.
  14.     Please read the disclaimer, which is in the file "include\m4kit.h".  
  15.  
  16.     For the latest news about MetaKit, point your Internet browser to:
  17.                             http://purl.net/meta4/metakit
  18.  
  19.     For an example of its use, check out the "CatFish" disk catalog browser.
  20.     This freeware Windows utility demonstrates the size and speed of MetaKit.
  21.  
  22.  
  23. FEATURES
  24.  
  25.     MAKE YOUR STRUCTURED DATA PERSISTENT
  26.     + Data is loaded on-demand, with immediate access to any size data files.
  27.     + Modifications are only made permanent when explicitly committed.
  28.  
  29.     GET THE ADVANTAGES OF A DATABASE IN C++
  30.     + Any failure, even during commit, causes automatic rollback on next open.
  31.     + Automatic file storage allocation, all repair/reclaim is automatic.
  32.  
  33.     TRANSPORT YOUR DATA ANYWHERE
  34.     + All data can be flattened for streaming over a communications channel.
  35.     + Files are portable across platforms: MS-DOS, Windows, Mac, and Unix.
  36.  
  37.     RUN-TIME DATA STRUCTURES
  38.     + Data structures are dynamic, allowing you to write generic utilities.
  39.     + Deal with file format changes and multiple formats as your code evolves. 
  40.  
  41.     HIGH PERFORMANCE
  42.     + Can store millions of objects, instant access to any view/row/property.
  43.     + Storage overhead for large collections of small objects can be very low.
  44.  
  45.     NO INCONVENIENT COMPROMISES
  46.     + MetaKit does not depend on UI code, so it can be combined with any GUI.
  47.     + Existing class libraries are used for string & container implementation.
  48.  
  49.     EASY TO READ, EASY TO USE
  50.     + Only a few tiny header files, distracting details are well encapsulated.
  51.     + Uses view / row / property classes with [] and () operator overloading.
  52.  
  53.     YOU STAY IN CONTROL
  54.     + The code footprint of MetaKit is small, you can link it as LIB or DLL.
  55.     + Complete, commented source code of MetaKit is available. No royalties.
  56.  
  57.     ONE SIZE FITS ALL
  58.     + Small projects: simple headers, easy to work with, small code, any GUI.
  59.     + Very large projects: complex structures, huge files, portable, failsafe.
  60.  
  61.     SOLID AND SUPPORTED
  62.     + This design has evolved during many years of commercial C++ programming.
  63.     + Your questions, comments, and suggestions will be taken very seriously.
  64.  
  65.  
  66. GETTING STARTED
  67.  
  68.     To install this library and sample code, unpack the ZIP archive to a new
  69.     directory (such as "C:\M4KIT"). Make sure to keep the original directory
  70.     structure, with 'Use Directory Names' in WinZip or 'pkunzip -d' in MS-DOS.
  71.  
  72.     Please read the "WHATSNEW.TXT" file for the last-minute release details.
  73.  
  74.     The main introduction is in the file "M4KIT.HTM", which is in HTML format.
  75.     The file "M4KITAPI.HLP" is the reference guide for this library (Winhelp).
  76.  
  77.     A simple disk-catalog program is included to illustrate many features.
  78.     Emphasis is on data-manipulation, this example uses a rudimentary UI.
  79.     The source code is in "examples\discat", the 16-bit Windows executable
  80.     is called "bin\discat16.exe", the 32-bit version is "bin\discat.exe".
  81.  
  82.     Note:   You will need Microsoft's MFC250.DLL to run the 16-bit version, or
  83.             the two files MFC42.DLL & MSVCRT.DLL to run the 32-bit version.
  84.             If you do not have them, you may not be able to do much with the
  85.             current MFC-only version of this software library, unfortunately.
  86.  
  87.     The "dump.exe" utility dumps the contents of datafiles, the "struct.exe"
  88.     program shows their data structure, full source code for both is included.
  89.     The "catsend.exe" and "catrecv.exe" sample applications demonstrate the
  90.     exchange of MetaKit data over TCP/IP. The "ftpcat.exe" 32-bit console
  91.     application creates catalog of remote FTP server directories (which are
  92.     compatible with "discat" and "catfish").
  93.  
  94.     The CatFish disk catalog browser executable is available separately (see
  95.     the MetaKit home page), the source and makefile for a DLL version of this
  96.     program are included in this distribution.
  97.  
  98.  
  99. ROADMAP
  100.  
  101.     Several header files and libraries have the digit four in their name to
  102.     avoid potential name conflicts with other files on your system.
  103.  
  104.  
  105.     DIRECTORIES
  106.  
  107.         The shareware distribution has the following directory structure:
  108.  
  109.             bin\        Executables of the examples
  110.             examples\   Source code examples
  111.             include\    Header files
  112.             lib\        Libraries needed to build applications
  113.  
  114.         These directories contain everything you need to build applications
  115.         for 32-bit and 16-bit Windows, as well as for MS-DOS (small-model).
  116.  
  117.         In addition, the source code version includes these directories:
  118.  
  119.             src\        C++ source files and private headers
  120.             msvc152\    Microsoft Visual C++ 1.52 build areas
  121.             msvc42\     Microsoft Visual C++ 4.2 build areas
  122.  
  123.  
  124.     HEADER FILES
  125.  
  126.         The MetaKit library software is highly modular (loosely coupled).
  127.         As a consequence, the headers you need to look at are quite small.
  128.         The following headers are provided in the shareware version:
  129.  
  130.             include\m4kit.h     The single header you'll need to include.
  131.  
  132.         This is a wrapper for the following files:
  133.  
  134.             include\k4conf.h    Compatibility and common definitions
  135.             include\k4view.h    Definition of views, cursors, and rows
  136.  
  137.         The remaining include files contain some less essential details:
  138.  
  139.             include\k4table.h   Persistent storage details (low-level)
  140.             include\k4field.h   Structured field details (low-level)
  141.             include\k4viewx.h   Additional view classes, used internally
  142.             include\k4*.inl     Inline function definitions
  143.  
  144.         These files define all capabilities of the library, no more, no less.
  145.         The core functionality is provided by the View and Storage classes.
  146.  
  147.  
  148.     SOURCE CODE EXAMPLES
  149.  
  150.         These programs illustrate different aspects of the MetaKit library:
  151.  
  152.             examples\catfish    Source code of the freeware "CatFish" utility,
  153.                                 a tiny but very fast disk catalog browser.
  154.                                 Created with MSVC 1.52 as a Win16 application.
  155.                                 Does not require, but works fine with FTPCAT.
  156.  
  157.             examples\catrecv    Receives and displays disk catalog as a tree.
  158.                                 In MSVC 4.2, needs Win95 for the Tree control.
  159.                                 Requires catsend to feed it some information.
  160.  
  161.             examples\catsend    Sends catalog file over a TCP/IP connection.
  162.                                 Compiled with MSVC 4 (Win32), uses Winsock.
  163.                                 Requires a catalog file created with discat.
  164.  
  165.             examples\demo       Simple program illustrating basic concepts.
  166.                                 Will compile as MS-DOS and Win32 console app.
  167.  
  168.             examples\discat     A basic disk catalog, for Win16 and Win32.
  169.                                 Compiled as a small dialog-based application.
  170.                                 Shows use with a non-trivial data structure.
  171.  
  172.             examples\dump       A utility to dump the contents of a datafile.
  173.                                 Compiled as a (32-bit) console application.
  174.                                 Useful for debugging, various output formats.
  175.  
  176.             examples\ftpcat     Similar to discat, but this console app will
  177.                                 generate tree catalogs of remote ftp servers.
  178.                                 Its catalog files are compatible with catsend.
  179.                                 Requires MSVC 4, runs FTP.EXE for sessions.
  180.  
  181.             examples\myio       Demonstration of encrypted data file storage.
  182.                                 Will compile as MS-DOS and Win32 console app.
  183.  
  184.             examples\struct     This utility displays the data structure of a
  185.                                 datafile as a graph. It is distributed as an
  186.                                 MS-DOS large-model real-mode executable.
  187.  
  188.         The CATSEND/CATRECV programs work together to demonstrate streaming,
  189.         generic file access (CATSEND knows nothing about the DISCAT format),
  190.         and use without data files (CATRECV only captures and displays data).
  191.         You need WINSOCK and TCP/IP, but you can run them on a single machine.
  192.         The FTPCAT utility creates files compatible with CATSEND and CATRECV.
  193.         Finally, CATFISH is a full-scale utility application, with source.
  194.  
  195.  
  196. PORTABILITY
  197.  
  198.     This release has been tested with Microsoft Visual C++ 4.0-4.2 (Win 32),
  199.     1.52 (Win 16 and MSDOS), Symantec C++ 7.2 (Win 32), and Watcom C++ 10.6
  200.     (Win 32) and uses files/strings/containers of MFC (Microsoft Foundation
  201.     Classes framework). The library can be linked statically or as DLL.
  202.  
  203.     Some newer C++ features such as templates and RTTI are not required for
  204.     this release (exceptions are used, using MFC macros for 16-bit MSVC 1.52).
  205.     The generic data types can be implemented surprisingly well without them,
  206.     although templates (and STL) will be used once they are widely supported.
  207.  
  208.     All C++ identifiers with global scope include the digit four. Namespace
  209.     support will be added when this addition to C++ becomes more widespread.
  210.  
  211.     Support for other compilers, frameworks, hardware platforms, and operating
  212.     systems will be available in a "Universal version" (end November 1996).
  213.  
  214.  
  215. REGISTRATION
  216.  
  217.     The MetaKit Library is not free, you must register for US$ 25 if you use
  218.     this code in your own software after an evaluation period of 30 days. When
  219.     used commercially, you must register and purchase the source code license
  220.     for another US$ 65 to obtain the right to incorporate this library code.
  221.  
  222.     Payment of the US$ 25 registration fee entitles you to:
  223.  
  224.         * The right to use this software for personal and non-profit use
  225.         * Download statically linked and debug library versions, Windows/MFC
  226.         * Timely notification by email of any new revisions and updates
  227.         * Free registration of every revision for the coming 12 months
  228.         * Quick response times for all technical support questions
  229.         * A warm thank you - you're supporting me to continue this effort!
  230.  
  231.     For an additional US$ 65, you can purchase the Source code version (MFC):
  232.  
  233.         * The right to include and distribute object code for commercial use
  234.         * Fully commented source code in C++ of the MetaKit library (MFC only)
  235.         * Makefiles and test software for several Windows/MFC environments
  236.         * A twelve month subscription to all major updates via email
  237.  
  238.     The Universal version is available as of December 1996 for $165:
  239.  
  240.         * All of the above, with sources and makefiles for multiple platforms
  241.         * Datafiles are fully portable, streaming also works accross platforms
  242.         * This version can be used on: MS-DOS, Windows, Macintosh, and Unix
  243.         * Full access to all beta and final library builds in the support area
  244.         * New ports will be announced and made available free of charge
  245.  
  246.     If you purchase a basic version, you can upgrade it at any later moment:
  247.  
  248.         * Upgrade from Registered to Source code (Windows/MFC) for $75
  249.         * Upgrade from Source code to the Universal version for $85
  250.  
  251.     How to register your copy and order other versions / upgrades of MetaKit:
  252.  
  253.         INTERNET:       For registration using the world wide web, including
  254.                         via several secure on-line registration forms, see:
  255.                                 http://mini.net/cgi-bin/sax?2020
  256.                         It allows on-line orders using ShareIt!, Kagi, or PsL.
  257.  
  258.         CREDIT CARD, CASH, CHECK, OR MONEY ORDERS:
  259.                         You can use the enclosed REGISTER.EXE program to send
  260.                         your order to the KAGI shareware registration service,
  261.                         using email, fax, or regular mail.
  262.  
  263.         BANK, EUROCHEQUE, CREDIT CARD, FAX, OR PHONE:
  264.                         You can contact the ShareIt! registration service in
  265.                         Germany: by phone +49-221-2407279 or +49-172-7229837,
  266.                         by fax +49-221-2407278, e-mail: register@shareit.com,
  267.                         or online: http://www.shareit.com/programs/100047.htm
  268.  
  269.         COMPUSERVE:     GO SWREG, select reg# 10351 (10352 for MFC sources),
  270.                         and enter all details. Confirmation and any further
  271.                         information will then be sent to you by email within
  272.                         two business days.  Other options are not available.
  273.  
  274.         PHONE ORDERS:   You can call PsL at 800-2424-PsL or 713-524-6394 and
  275.                         give them a MC, Visa, Amex, or Discover card number.
  276.                         Specify item #14522 and which version you want.
  277.                         To insure that you will receive the latest registered
  278.                         version, PsL will notify us the day of your order and
  279.                         additional information will be sent to you within two
  280.                         business days.
  281.  
  282.         NOTE:   THE ABOVE PHONE NUMBERS ARE FOR CREDIT CARD, ETC. ORDERS ONLY.
  283.                 THE AUTHOR OF THIS LIBRARY CANNOT BE REACHED AT THESE NUMBERS.
  284.  
  285.         Any questions about the status of the shipment of the order, refunds,
  286.         registration options, product details, tech support, volume discounts,
  287.         site licenses, etc, must be directed to the email/fax addresses below.
  288.  
  289.  
  290. DISTRIBUTION AND SUPPORT
  291.  
  292.     The MetaKit Library software package is copyright Meta Four Software, NL.
  293.     You may not distribute this information, nor any portions thereof, as part
  294.     of a general database- or object-persistence software library or utility.
  295.  
  296.     You may distribute this shareware release for any other purpose, provided
  297.     that all files are included without change, including this description.
  298.  
  299.     Meta Four Software will provide technical support for 12 months, starting
  300.     on the day your registration fee is received. If a problem with MetaKit is
  301.     not resolved according to the specifications, you will be given the option
  302.     to receive a refund of the purchase price.
  303.  
  304.  
  305. CONTACT INFORMATION
  306.  
  307.     Jean-Claude Wippler          mailto:jcw@meta4.nl
  308.  
  309.     Meta Four Software             http://purl.net/meta4
  310.     Meekrap oord 6
  311.     3991 VE, Houten                 fax:+31 30 635 2337
  312.     The Netherlands
  313.  
  314.     Member of the Association of Shareware Professionals (ASP).
  315.